﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml;

namespace ibba.src.noriskbo.Web.code
{
    public class AmbienteHelper
    {
        private static readonly AmbienteHelper _instancia = new AmbienteHelper();

        private AmbienteHelper()
        {
            CarregarArquivoConfiguracoes();
        }

        public static AmbienteHelper GetInstance
        {
            get
            {
                return _instancia;
            }
        }

        public string ServidorComponentes { get; private set; }
        public string ServidorComponentesFixo { get; private set; }
        public string DiretorioVirtual { get; private set; }

        private void CarregarArquivoConfiguracoes()
        {
            try
            {
                string xmlFilePath = HttpContext.Current.Server.MapPath("~/Servidores.xml");

                using (XmlReader xr = XmlReader.Create(new Uri(Application.Current.Host.Source, "Servidores.xml").AbsolutePath))
                //using (XmlReader xr = XmlReader.Create(new StringReader(Config.XMLServidores)))
                {
                    xr.MoveToContent();

                    while (xr.Read())
                    {
                        if (xr.NodeType == XmlNodeType.Element && xr.Name == "servidor")
                        {

                            if (Config.Servidor.Trim().ToLower().IndexOf(xr.GetAttribute("id").ToLower()) == 0)
                            {
                                this.ServidorComponentes = xr.GetAttribute("servidorcomponentes");
                                this.ServidorComponentesFixo = xr.GetAttribute("servidorcomponentesfixo");
                                this.DiretorioVirtual = xr.GetAttribute("diretoriovirtual");
                                break;
                            }
                            else if (xr.GetAttribute("id") == "producao")
                            {
                                this.ServidorComponentes = xr.GetAttribute("servidorcomponentes");
                                this.ServidorComponentesFixo = xr.GetAttribute("servidorcomponentesfixo");
                                this.DiretorioVirtual = xr.GetAttribute("diretoriovirtual");
                            }
                        }
                    }
                }

            }
            catch (Exception e)
            {
                //Erro pe = new Erro(string.Format("{0} \n {1} ", "CarregarArquivoConfiguracoes", e.ToString()));
                //pe.Show();
                //MessageBoxHelper.ShowErro(AppHelper.NomeSistema, "Erro ao carregar configuração de servidores", e.Message.ToString());
                throw new Exception("Erro ao carregar configuração de servidores" + Environment.NewLine + e.Message, e.InnerException);
            }
        }
    }
}